package com.haixiaoke.saas.contract.service;

import com.haixiaoke.saas.contract.domain.ContractTemplate;

import java.util.List;

/**
 * 合同模板Service接口
 *
 * @author panda
 * @date 2024-05-30
 */
public interface IContractTemplateService {
    /**
     * 查询合同模板
     *
     * @param contractTemplateId 合同模板主键
     * @return 合同模板
     */
    ContractTemplate selectContractTemplateByContractTemplateId(String contractTemplateId);

    /**
     * 查询合同模板列表
     *
     * @param contractTemplate 合同模板
     * @return 合同模板集合
     */
    List<ContractTemplate> selectContractTemplateList(ContractTemplate contractTemplate);

    /**
     * 新增合同模板
     *
     * @param contractTemplate 合同模板
     * @return 结果
     */
    int insertContractTemplate(ContractTemplate contractTemplate);

    /**
     * 修改合同模板
     *
     * @param contractTemplate 合同模板
     * @return 结果
     */
    int updateContractTemplate(ContractTemplate contractTemplate);

    /**
     * 批量删除合同模板
     *
     * @param contractTemplateIds 需要删除的合同模板主键集合
     * @return 结果
     */
    int deleteContractTemplateByContractTemplateIds(String[] contractTemplateIds);

    int softDeleteContractTemplateByContractTemplateIds(String[] contractTemplateIds);

    /**
     * 删除合同模板信息
     *
     * @param contractTemplateId 合同模板主键
     * @return 结果
     */
    int deleteContractTemplateByContractTemplateId(String contractTemplateId);

    /**
     * 查询合同模板下拉列表
     */
    List<ContractTemplate> selectTemplateList(ContractTemplate contractTemplate);

    /**
     * 预览合同模板内容
     *
     * @param contractTemplateId
     * @return
     */
    ContractTemplate previewContractTemplateByContractTemplateId(String contractTemplateId);

    /**
     * 更新合同模板内容
     *
     * @param contractTemplate
     * @return
     */
    int updateContractTemplateContent(ContractTemplate contractTemplate);

    ContractTemplate selectContractByContractTemplateId(String contractTemplateId);
}
